Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
СП

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / ЗВІТ до лабораторної роботи № 5 з дисципліни " AЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ" МЕТА РОБОТИ Повторити метод матричного множення. ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ Реалізувати стандартний алгоритм матричного множення і запрограмувати метод Гауса (розв'язок системи лінійних алгебраічних рівнянь). Результат виконання програми. / Текст програми: using System; namespace Lab5 { class Program { // Вивід системи рівняннь static void sysout(double [,]a, double [] y, int n) { Console.WriteLine("Система рiвняння:"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write("{0}*x{1}", a[i,j],j); if (j < n - 1) { Console.Write(" + "); } } Console.WriteLine(" = {0}", y[i]); } return; } static void gauss(double [,] a, double [] y, int n) { double[] x = new double[n]; double max; int k, index; const double eps = 0.00001; // точність k = 0; while (k < n) { // Пошук рядка з максимальним a[i][k] max = Math.Abs(a[k,k]); index = k; for (int i = k + 1; i < n; i++) { if (Math.Abs(a[i,k]) > max) { max = Math.Abs(a[i,k]); index = i; } } // Перестановка рядків if (max < eps) { // немає ненульових діагональних елементів Console.WriteLine("Рiшення отримати неможливо через нульового стовпчика "); Console.WriteLine("{0} матриця A",index); } for (int j = 0; j < n; j++) { double temp1 = a[k,j]; a[k,j] = a[index,j]; a[index,j] = temp1; } double temp2 = y[k]; y[k] = y[index]; y[index] = temp2; // Нормализация рівняннь for (int i = k; i < n; i++) { double temp3 = a[i,k]; if (Math.Abs(temp3) < eps) continue; // для нульового коефіцієнта пропустити for (int j = 0; j < n; j++) { a[i,j] = a[i,j] / temp3; } y[i] = y[i] / temp3; if (i == k) continue; for (int j = 0; j < n; j++) { a[i,j] = a[i,j] - a[k,j]; } y[i] = y[i] - y[k]; } k++; } Console.WriteLine(""); Console.WriteLine("Результат:"); //зворотня підстановка for (k = n-1; k >= 0; k--) { //double[] res = new double[k]; x[k] = y[k]; for (int i = 0; i < k; i++) { y[i] = y[i] - a[i,k] * x[k]; } } for (int i = 0; i < n; i++) { Console.WriteLine("x[{0}]= {1}",i, y[i]); } } static void Main(string[] args) { double[] x, y; Console.Write("Введiть кiлькiсть рiвнянь: "); int n = Convert.ToInt32(Console.ReadLine()); double[,] a = new double[n,n]; x = new d...
Антиботан аватар за замовчуванням

29.03.2016 08:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини